home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / amiga / opalvisn / lsidocs.lha / Include / Opal / macros.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-06-14  |  4.6 KB  |  155 lines

  1. /* This file includes many useful macros to generate OpalPaint
  2.  * style gadgets.
  3.  */
  4.  
  5.  
  6.  
  7. #define OPBLACK        0L    /* OpalPaint colours */
  8. #define OPGREY        1L
  9. #define OPBLUE        2L
  10. #define OPWHITE        3L
  11.  
  12.     /* White Text */
  13.  
  14. #define MakeWText(Name,x,y,Text) \
  15. struct IntuiText Name = { OPWHITE, OPGREY, JAM1, x,y, &Font, (UBYTE *)Text, NULL}
  16.  
  17.  
  18.     /* Blue Text */
  19.  
  20. #define MakeBText(Name,x,y,Text) \
  21. struct IntuiText Name = { OPBLUE, OPGREY, JAM1, x,y, &Font, (UBYTE *)Text, NULL}
  22.  
  23.  
  24.     /* White on Blue Text for headings */
  25.  
  26. #define MakeDoubleText(Name,x,y,Text,Next) \
  27. struct IntuiText Name[] =\
  28.     { { OPBLUE, OPGREY, JAM1, x,y, &Font, (UBYTE *)Text, &Name[1]},\
  29.       { OPWHITE, OPGREY, JAM1, x,y-2, &Font, (UBYTE *)Text, Next}  }
  30.  
  31.  
  32. /* Make a button (BoolGadget) */
  33.  
  34. #define MakeButton(GadName,Next,x,y,w,h,Text,Border,SelBorder,GadID) \
  35. struct Gadget GadName = {  \
  36.     Next,x,y,w,h,GADGHIMAGE,\
  37.     RELVERIFY,BOOLGADGET|REQGADGET,\
  38.     (APTR)&Border,(APTR)&SelBorder,\
  39.     &Text,NULL,NULL,GadID,NULL\
  40. }
  41.  
  42.  
  43.  
  44. /* NOTE: Toggle select gadgets have mutual exclusion */
  45.  
  46.     /* Small Toggle select gadget */
  47.  
  48. #define MakeGad1(GadName,Next,x,y,w,h,ExtraFlags,Text,Border,SelBorder,Exclude,GadID) \
  49. struct Gadget GadName = {  \
  50.     Next,x,y,w,h,GADGHIMAGE|ExtraFlags,\
  51.     RELVERIFY|TOGGLESELECT,BOOLGADGET|REQGADGET,\
  52.     (APTR)&Border,(APTR)&SelBorder,\
  53.     &Text,Exclude,NULL,GadID,NULL\
  54. }
  55.  
  56.  
  57.     /* Make 3D borders */
  58.  
  59. #define MakeBorder(Name,Vec,x,y,w,h)\
  60. SHORT Vec[4][6] =\
  61.         { {x+w,y, x,y, x,y+h},\
  62.           {x+w-1,y+1, x+1,y+1, x+1,y+h-1},\
  63.           {x+w,y+1, x+w,y+h, x,y+h},\
  64.           {x+w-1,y+2, x+w-1,y+h-1, x+1,y+h-1} };\
  65. struct Border Name[4] =\
  66.     { { 0,0, OPWHITE,0, JAM1, 3,Vec[0], &Name[1] },\
  67.       { 0,0, OPWHITE,0, JAM1, 3,Vec[1], &Name[2] },\
  68.       { 0,0, OPBLUE,0, JAM1, 3,Vec[2], &Name[3] },\
  69.       { 0,0, OPBLUE,0, JAM1, 3,Vec[3], NULL } }
  70.  
  71.  
  72.     /* Make an Inverse 3D border */
  73.  
  74. #define MakeIBorder(Name,Vec,x,y,w,h)\
  75. SHORT Vec[4][6] =\
  76.         { {x+w,y, x,y, x,y+h},\
  77.           {x+w-1,y+1, x+1,y+1, x+1,y+h-1},\
  78.           {x+w,y+1, x+w,y+h, x,y+h},\
  79.           {x+w-1,y+2, x+w-1,y+h-1, x+1,y+h-1} };\
  80. struct Border Name[4] =\
  81.     { { 0,0, OPBLUE,0, JAM1, 3,Vec[0], &Name[1] },\
  82.       { 0,0, OPBLUE,0, JAM1, 3,Vec[1], &Name[2] },\
  83.       { 0,0, OPWHITE,0, JAM1, 3,Vec[2], &Name[3] },\
  84.       { 0,0, OPWHITE,0, JAM1, 3,Vec[3], NULL } }
  85.  
  86.  
  87.     /* Make inverse border using supplied vectors */
  88.  
  89. #define MakeIBorder2(Name,Vec,x,y,w,h)\
  90. struct Border Name[4] =\
  91.     { { 0,0, OPBLUE,0, JAM1, 3,Vec[0], &Name[1] },\
  92.       { 0,0, OPBLUE,0, JAM1, 3,Vec[1], &Name[2] },\
  93.       { 0,0, OPWHITE,0, JAM1, 3,Vec[2], &Name[3] },\
  94.       { 0,0, OPWHITE,0, JAM1, 3,Vec[3], NULL } }
  95.  
  96.  
  97.     /* Cycle Gadgets */
  98.  
  99. #define MakeCycleBd(Name,Vec,w,h)\
  100. SHORT Vec[13][6] =\
  101.     { { 0,h-1, 0,0, w,0 },        /* Rectangular border */\
  102.       { 1,h-2, 1,1, w-1,1 },\
  103.       { 1,h-1, w-1,h-1, w-1,2 },\
  104.       { 0,h, w,h, w,1},\
  105.       { 20,4, 20,h-4 },        /* Vertical seperator */\
  106.       { 21,4, 21,h-4 },\
  107.       { 14,7, 13,7 },        /* Arrow */\
  108.       { 13,8, 7,8, 7,1},\
  109.       { 6,7, 6,1 },\
  110.       { 7,0, 13,0, 13,5 },\
  111.       { 14,1, 14,5},\
  112.       { 11,3, 16,3},\
  113.       { 12,4, 15,4} };\
  114. struct Border Name[13] =\
  115.     { { 0,0, OPWHITE,0, JAM1, 3,Vec[0], &Name[1] },\
  116.       { 0,0, OPWHITE,0, JAM1, 3,Vec[1], &Name[2] },\
  117.       { 0,0, OPBLUE,0, JAM1, 3,Vec[2], &Name[3] },\
  118.       { 0,0, OPBLUE,0, JAM1, 3,Vec[3], &Name[4] },\
  119.       { 0,0, OPBLUE,0, JAM1, 2,Vec[4], &Name[5] },\
  120.       { 0,0, OPWHITE,0, JAM1, 2,Vec[5], &Name[6] },\
  121.       { 0,((h-9)/2)+1, OPWHITE,0, JAM1, 2,Vec[6], &Name[7] },\
  122.       { 0,((h-9)/2)+1, OPWHITE,0, JAM1, 3,Vec[7], &Name[8] },\
  123.       { 0,((h-9)/2)+1, OPWHITE,0, JAM1, 2,Vec[8], &Name[9] },\
  124.       { 0,((h-9)/2)+1, OPWHITE,0, JAM1, 3,Vec[9], &Name[10] },\
  125.       { 0,((h-9)/2)+1, OPWHITE,0, JAM1, 2,Vec[10], &Name[11] },\
  126.       { 0,((h-9)/2)+1, OPWHITE,0, JAM1, 2,Vec[11], &Name[12] },\
  127.       { 0,((h-9)/2)+1, OPWHITE,0, JAM1, 2,Vec[12], NULL } }
  128.  
  129.  
  130. #define MakeICycleBd(Name,Vec,w,h)\
  131. struct Border Name[13] =\
  132.     { { 0,0, OPBLUE,0, JAM1, 3,Vec[0], &Name[1] },\
  133.       { 0,0, OPBLUE,0, JAM1, 3,Vec[1], &Name[2] },\
  134.       { 0,0, OPWHITE,0, JAM1, 3,Vec[2], &Name[3] },\
  135.       { 0,0, OPWHITE,0, JAM1, 3,Vec[3], &Name[4] },\
  136.       { 0,0, OPWHITE,0, JAM1, 2,Vec[4], &Name[5] },\
  137.       { 0,0, OPBLUE,0, JAM1, 2,Vec[5], &Name[6] },\
  138.       { 0,((h-9)/2)+1, OPBLUE,0, JAM1, 2,Vec[6], &Name[7] },\
  139.       { 0,((h-9)/2)+1, OPBLUE,0, JAM1, 3,Vec[7], &Name[8] },\
  140.       { 0,((h-9)/2)+1, OPBLUE,0, JAM1, 2,Vec[8], &Name[9] },\
  141.       { 0,((h-9)/2)+1, OPBLUE,0, JAM1, 3,Vec[9], &Name[10] },\
  142.       { 0,((h-9)/2)+1, OPBLUE,0, JAM1, 2,Vec[10], &Name[11] },\
  143.       { 0,((h-9)/2)+1, OPBLUE,0, JAM1, 2,Vec[11], &Name[12] },\
  144.       { 0,((h-9)/2)+1, OPBLUE,0, JAM1, 2,Vec[12], NULL } }
  145.  
  146.  
  147.  
  148. #define MakeCycle(GadName,Next,x,y,w,h,Text,Bd,IBd,GadID) \
  149. struct Gadget GadName = {  \
  150.     Next,x,y,w,h,GADGHIMAGE,\
  151.     RELVERIFY,BOOLGADGET,\
  152.     (APTR)&Bd,(APTR)&IBd,\
  153.     &Text,NULL,NULL,GadID,NULL\
  154. }
  155.